Exploiting FPGA Concurrency to Enhance JVM Performance
نویسندگان
چکیده
The Java Programming Language has been praised for its platform independence and portability, but because of its slow execution speed on a software Java Virtual Machine (JVM), some people decide to use faster languages such as C. Building a JVM in hardware is an obvious solution to this problem. Several approaches have been taken to try to achieve the best solution. One approach is by reducing the number of Java instructions a program has to execute along with directly executing instructions in hardware, for example on a Field Programmable Gate Array (FPGA), to increase the execution speed. Another approach is the translation of Java Byte Codes into native code by a FPGA and then executing the native code on a conventional CPU. Others have developed a multithreaded JVM and exploited the parallelism offered by a FPGA and have specifically designed the JVM for real-time systems. This paper compares and contrasts all these approaches and then argues that the parallelism of a FPGA should be exploited in the most general way possible by not restricting the threads of execution to a specific task. It gives a method for building such a JVM and also some results from a JVM that was built using this method. The paper concludes that this approach should be taken to build a system that is capable of running threads of a Java program in parallel.
منابع مشابه
Proposal Title : Hyper - threaded JVM on a FPGA
This project is concerned with researching and implementing a multi-threaded Java Virtual Machine (JVM) that can execute threads concurrently in hardware on a Field Programmable Gate Array (FPGA). A FPGA is a hardware device that has many applications ranging from embedded systems such as Mobile Phones, Signal Processing in Electric Guitars, and PDAs to high performance computing. A standard CP...
متن کاملBalancing coarse-grained pipelined architectures using multiple clock domains on platform FPGA
Pipelining is a fundamental technique used in computing machines to enhance throughput by exploiting concurrency between different stages of computation. Due to the inter-play between many aspects of the algorithm and the ability of either the tool or the designer to leverage architectural features of modern day platform FPGAs, building efficient pipelined architecture for a given algorithm on ...
متن کاملScalable Performance for Scala Message-Passing Concurrency
This paper presents an embedded domain-specific language for building massively concurrent systems. In particular, we demonstrate how ultra-lightweight cooperatively-scheduled processes and message-passing concurrency can be provided for the Scala programming language on the Java Virtual Machine (JVM). We make use of a well-known continuation-passing style bytecode transformation in order to ac...
متن کاملEvaluation of a Java Processor
In this paper, we will present the evaluation results for a Java processor, with respect to size and performance. The Java Optimized Processor (JOP) is an implementation of the Java virtual machine (JVM) in a low-cost FPGA. JOP is the smallest hardware realization of the JVM available to date. Due to the efficient implementation of the stack architecture, JOP is also smaller than a comparable R...
متن کاملComparison of Erlang Runtime System and Java Virtual Machine
This report gives a high level overview of the Erlang Runtime System (ERTS) and the Java Virtual Machine (JVM), comparing the two in terms of overall architecture, memory layout, parallelism/concurrency and runtime optimisations. More specifically I’ll look at the HotSpot JVM provided by Oracle and the default BEAM implementation open sourced by Ericsson.
متن کامل